# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Oliver Smith <ollieparanoid@postmarketos.org>
# Contributor: Michal Artazov <michal@artazov.cz>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=busybox
pkgver=1.37.0
pkgrel=6
pkgdesc="Size optimized toolbox of many common UNIX utilities"
url="https://busybox.net/"
arch="all"
license="GPL-2.0-only"
# Documentation needs pod2man (silently fails otherwise)
makedepends_build="perl"
makedepends_host="linux-headers openssl-dev>3"
# Only build with utmps support if we are not bootstraping.
[ -z "$BOOTSTRAP" ] && makedepends_host="$makedepends_host utmps-dev utmps-static"
makedepends="$makedepends_build $makedepends_host"
checkdepends="zip"
install="$pkgname.post-install $pkgname.post-upgrade
	$pkgname-extras.post-install $pkgname-extras.pre-deinstall"
subpackages="
	$pkgname-static
	$pkgname-doc
	$pkgname-suid
	ssl_client
	$pkgname-ifupdown::noarch
	$pkgname-binsh::noarch
	$pkgname-openrc
	$pkgname-mdev-openrc:mdev_openrc
	$pkgname-extras
	$pkgname-extras-openrc:extras_openrc
	"
options="suid net" # net needed for check()
replaces="busybox-initscripts" # move of default.script
triggers="busybox.trigger=/bin:/usr/bin:/sbin:/usr/sbin:/lib/modules/*:/usr/lib/modules/*"

_openrc_files="acpid.initd
	crond.confd crond.initd
	klogd.confd klogd.initd
	ntpd.confd ntpd.initd
	rdate.confd rdate.initd
	syslog.confd syslog.initd
	loadkmap.confd loadkmap.initd
	watchdog.confd watchdog.initd"
_mdev_openrc_files="mdev.initd"
_extras_openrc_files="dnsd.initd httpd.initd inetd.initd udhcpd.initd"

source="https://busybox.net/downloads/busybox-$pkgver.tar.bz2
	0001-wget-add-header-Accept.patch
	0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
	0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
	0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
	0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
	0006-modinfo-add-k-option-for-kernel-version.patch
	0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
	0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
	0009-properly-fix-wget-https-support.patch
	0010-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
	0011-nslookup-sanitize-all-printed-strings-with-printable.patch
	0012-ash-exec-busybox.static.patch
	0013-app-location-for-cpio-vi-and-lspci.patch
	0014-udhcpc-set-default-discover-retries-to-5.patch
	0015-ping-make-ping-work-without-root-privileges.patch
	0016-fbsplash-support-console-switching.patch
	0017-fbsplash-support-image-and-bar-alignment-and-positio.patch
	0018-depmod-support-generating-kmod-binary-index-files.patch
	0019-Add-flag-for-not-following-symlinks-when-recursing.patch
	0020-udhcpc-Don-t-background-if-n-is-given.patch
	0021-tests-fix-tarball-creation.patch
	0022-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
	0023-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
	0024-umount-Implement-O-option-to-unmount-by-mount-option.patch
	0025-find-fix-xdev-depth-and-delete.patch
	0026-awk.c-fix-CVE-2023-42366-bug-15874.patch
	0027-awk-Mark-test-for-handling-of-start-of-word-pattern-.patch
	0028-od-Skip-od-B-on-big-endian.patch
	0029-ash-reject-unknown-long-options.patch
	0030-hexdump-Skip-a-single-test-on-big-endian-systems.patch
	0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch
	0032-lineedit-fix-some-tab-completions-written-to-stdout.patch

	0001-hexdump-fix-regression-with-n4-e-u.patch

	acpid.logrotate
	busyboxconfig
	busyboxconfig-extras
	bbsuid.c
	dad.if-up
	ssl_client.c
	default.script
	udhcpc.conf
	securetty
	acpid-poweroff.sh
	$_openrc_files
	$_mdev_openrc_files
	$_extras_openrc_files
"

# secfixes:
#   1.36.1-r30:
#     - CVE-2023-42364
#     - CVE-2023-42365
#   1.36.1-r27:
#     - CVE-2023-42363
#   1.36.1-r25:
#     - CVE-2023-42366
#   1.36.1-r2:
#     - CVE-2022-48174
#   1.35.0-r17:
#     - CVE-2022-30065
#   1.35.0-r7:
#     - ALPINE-13661
#     - CVE-2022-28391
#   1.34.0-r0:
#     - CVE-2021-42374
#     - CVE-2021-42375
#     - CVE-2021-42378
#     - CVE-2021-42379
#     - CVE-2021-42380
#     - CVE-2021-42381
#     - CVE-2021-42382
#     - CVE-2021-42383
#     - CVE-2021-42384
#     - CVE-2021-42385
#     - CVE-2021-42386
#   1.33.0-r5:
#     - CVE-2021-28831
#   1.30.1-r2:
#     - CVE-2019-5747
#   1.29.3-r10:
#     - CVE-2018-20679
#   1.28.3-r2:
#     - CVE-2018-1000500
#   1.27.2-r4:
#     - CVE-2017-16544
#     - CVE-2017-15873
#     - CVE-2017-15874
#   0:
#     - CVE-2021-42373
#     - CVE-2021-42376
#     - CVE-2021-42377

_staticdir="$srcdir"/build-static
_dyndir="$srcdir"/build-dynamic
_dyndir_extras="$srcdir"/build-dynamic-extras
_config="$srcdir"/busyboxconfig
_config_extras="$srcdir"/busyboxconfig-extras

prepare() {
	# remove SGID if set as it confuses the busybox testsuite
	chmod -R g-s "$builddir"
	default_prepare

	mkdir -p "$_staticdir" "$_dyndir" "$_dyndir_extras"
}

build() {
	local _extra_cflags= _extra_libs=
	if [ -z "$BOOTSTRAP" ] ; then
		_extra_cflags="$(pkg-config --cflags --static utmps)"
		_extra_libs="$(pkg-config --libs --static utmps)"
	fi

	# build bbsuid
	msg "Building bbsuid"
	${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS \
		$LDFLAGS "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid

	msg "Building ssl_client"
	# shellcheck disable=SC2046  # Allow wordsplitting for pkg-config
	${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS $(pkg-config --cflags libcrypto libssl) \
		"$srcdir"/ssl_client.c -o "$_dyndir"/ssl_client $LDFLAGS $(pkg-config --libs libcrypto libssl)

	# build dynamic
	cd "$_dyndir"
	msg "Building dynamic busybox"
	echo "COPIED CONFIG to $(pwd)/.config"
	cp "$_config" .config
	make -C "$builddir" O="$PWD" silentoldconfig
	make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"

	# build dynamic (extras)
	cd "$_dyndir_extras"
	msg "Building dynamic busybox-extras"
	cp "$_config_extras" .config
	make -C "$builddir" O="$PWD" silentoldconfig
	make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
	# Yes, the above command line is verbose, but it needs to be duplicated verbatim
	# for every build. Because the busybox build system is extremely brittle and
	# breaks on *any* attempt to factorize it.

	# build static
	cd "$_staticdir"
	msg "Building static busybox"
	# enable internal ssl_client for static build
	sed -e "s/.*CONFIG_PIE.*/\# CONFIG_PIE is not set/" \
		-e "s/.*CONFIG_STATIC\([A-Z_]*\).*/CONFIG_STATIC\1=y/" \
		-e "s/.*CONFIG_SSL_CLIENT.*/CONFIG_SSL_CLIENT=y/" \
		"$_config" > .config
	make -C "$builddir" O="$PWD" silentoldconfig
	make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
	mv busybox busybox.static
}

check() {
	local _extra_cflags= _extra_libs=
	if [ -z "$BOOTSTRAP" ] ; then
		_extra_cflags="$(pkg-config --cflags --static utmps)"
		_extra_libs="-Wl,--push-state,-Bstatic $(pkg-config --libs --static utmps) -Wl,--pop-state"
	fi

	# Set VERBOSE to see expected outcome of each test (runtest -v flag).
	# Set DEBUG to enable command trace (see testsuite/testing.sh).

	cd "$_dyndir"
	SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"

	cd "$_dyndir_extras"
	SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
}

package() {
	local file
	install -d "$pkgdir"/usr/sbin "$pkgdir"/usr/bin "$pkgdir"/bin "$pkgdir"/sbin
	cd "$srcdir"
	for file in *.confd ; do
		install -D -m 0644 $file "$pkgdir"/etc/conf.d/${file%%\.confd}
	done
	for file in *.initd ; do
		install -D -m 0755 $file "$pkgdir"/etc/init.d/${file%%\.initd}
	done

	cd "$_dyndir"
	install -Dm755 busybox "$pkgdir"/bin/busybox
	install -Dm644 docs/busybox.1 "$pkgdir"/usr/share/man/man1/busybox.1

	#ifupdown needs those dirs to be present
	install -d \
		"$pkgdir"/etc/network/if-down.d \
		"$pkgdir"/etc/network/if-post-down.d \
		"$pkgdir"/etc/network/if-post-up.d \
		"$pkgdir"/etc/network/if-pre-down.d \
		"$pkgdir"/etc/network/if-pre-up.d \
		"$pkgdir"/etc/network/if-up.d
	install -Dm775 "$srcdir"/dad.if-up "$pkgdir"/etc/network/if-up.d/dad

	install -Dm644 "$srcdir"/acpid.logrotate \
		"$pkgdir/etc/logrotate.d/acpid"

	install -Dm644 "$srcdir"/udhcpc.conf "$pkgdir"/etc/udhcpc/udhcpc.conf
	install -Dm644 "$srcdir"/securetty "$pkgdir"/etc/securetty

	# script for udhcpc
	install -Dm755 "$srcdir"/default.script \
		"$pkgdir"/usr/share/udhcpc/default.script

	# Install a list of symlinks installed by busybox.  This is useful for
	# building and analyzing Alpine-based images which contain busybox, where
	# you don't want to run busybox --list-path at analysis or build time.
	if [ "$CHOST" = "$CBUILD" ]; then
		"$pkgdir"/bin/busybox --list-path |
			install -Dm644 /dev/stdin "$pkgdir"/etc/busybox-paths.d/busybox
	fi
}

extras() {
	pkgdesc="Additional binaries of Busybox"
	depends="$pkgname=$pkgver-r$pkgrel"
	install -Dm755 "$_dyndir_extras"/busybox "$subpkgdir"/bin/busybox-extras

	# Install a list of symlinks installed by busybox-extras.  This is useful for
	# building and analyzing Alpine-based images which contain busybox, where
	# you don't want to run busybox --list-path at analysis or build time.
	if [ "$CHOST" = "$CBUILD" ]; then
		"$subpkgdir"/bin/busybox-extras --list-path |
			install -Dm644 /dev/stdin "$subpkgdir"/etc/busybox-paths.d/busybox-extras
	fi

	# Configuration file and lease directory used by udhcpd which
	# is part of busybox-extras, hence the files are installed here.
	install -d "$subpkgdir"/var/lib/udhcpd
	install -Dm644 "$builddir"/examples/udhcp/udhcpd.conf \
		"$subpkgdir"/etc/udhcpd.conf
}

suid() {
	pkgdesc="suid binaries of Busybox"
	depends="$pkgname=$pkgver-r$pkgrel"

	cd "$_dyndir"
	install -Dm4111 bbsuid "$subpkgdir"/bin/bbsuid
}

static() {
	pkgdesc="Statically linked Busybox"

	install -Dm755 "$_staticdir"/busybox.static \
		"$subpkgdir"/bin/busybox.static
}

ssl_client() {
	pkgdesc="External ssl_client for busybox wget"
	local _sslver=$(pkg-config --modversion libssl)
	# automatically pull in if both busybox and libssl is installed
	install_if="$pkgname=$pkgver-r$pkgrel libssl${_sslver%%.*}"

	install -Dm755 "$_dyndir"/ssl_client \
		"$subpkgdir"/usr/bin/ssl_client
}

ifupdown() {
	pkgdesc="placeholder package for busybox ifupdown"
	provides="ifupdown-any"
	provider_priority=200
	mkdir -p "$subpkgdir"
}

binsh() {
	pkgdesc="busybox ash /bin/sh"
	provides="/bin/sh"
	provider_priority=100

	install -d "$subpkgdir"/bin

	ln -s /bin/busybox "$subpkgdir"/bin/sh
}

_helper_openrc() {
	local file
	for file ; do
		case $file in
			*.confd) amove etc/conf.d/"${file%\.confd}" ;;
			*.initd) amove etc/init.d/"${file%\.initd}" ;;
		esac
	done
}

openrc() {
	depends="openrc>=0.24.1-r6"
	replaces="openntpd busybox-initscripts acpid-openrc"
	_helper_openrc $_openrc_files

	# poweroff script for acpid
	install -Dm755 "$srcdir"/acpid-poweroff.sh "$subpkgdir"/etc/acpi/PWRF/00000080
}

mdev_openrc() {
	depends="openrc>=0.24.1-r6 mdev-conf"
	replaces="busybox-initscripts"
	provides="dev-openrc"
	provider_priority=30
	_helper_openrc $_mdev_openrc_files
}

extras_openrc() {
	depends="openrc>=0.24.1-r6 busybox-extras"
	replaces="busybox-initscripts"
	_helper_openrc $_extras_openrc_files
}

sha512sums="
ad8fd06f082699774f990a53d7a73b189ed404fe0a2166aff13eae4d9d8ee5c9239493befe949c98801fe7897520dbff3ed0224faa7205854ce4fa975e18467e  busybox-1.37.0.tar.bz2
b148e37fc23d65ac011fa85142fcd645a55171593e889a86743b1557d9be05b6c39e8d0a798a536dfa29d17f71d6fb0b422f031128415b07ddec3c209ce93814  0001-wget-add-header-Accept.patch
c725043253cae924b989cfba739d024b172b20a300de63acd26d4ec0624a13b5ea4b07f53cf991c4991cb611454c70ebe5bdb8e1a8e62d5d5d7e2e3823bed2bf  0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
e9ba4f56bd0841f6b998f79aaf73a09c4096fec0f817594be294c12a03ba712f1103fb8b0716fcf2fb04f5dc9efa04aa6dc9b61150b3df00b302ab6f9608d313  0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
c6acd1a4cbbc8b7b6c66b20c4cb958c12e887a43edbea35c0c4db3b4139afc5b4246058f503a5aaac0d05badffee93e6bf91111ad0cc856d9f5074baa7194df8  0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
0c4eba3a6690b4989ced7f40a2f2369fe8ca97caa226838bde6412031290722d380a27203c67f8a2bfb3319590c67a0a108f8d8a04cff9add54085bdea520c25  0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
68637265f28f73e1538045bb23f6a585248a73d60eb81b1fb75a67e9946b9f3928ebb6d8794976f724a6f0e0324748e3eafbf1dff5e1c78254200cb3acbc51cd  0006-modinfo-add-k-option-for-kernel-version.patch
6a0714d051dc29e39d62271c317455bb7d1b28117f60cdc3e887dddbb38df28ae5c17da8033b4250c1bed76f1e8e29b2c013e87f9d547a5bdf75c4b9433fc2bd  0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
220da5e908ae3c6f836faf8549f5c610e74a76563103152f9d20e2b2ca1663ba7baf803067286684753a2c737427c5fcf317d7da60293412f601b4ca17e77e00  0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
b4697696c2c44f5c2c2be167774784b87f45d7d1433db8ed040ae37a99d01275a2a0b79db7e6314636f76db0f7b69288f1f7d2fb96c097929524d49832ea0913  0009-properly-fix-wget-https-support.patch
16e490902496cfe199551432dd3cce480d20d79b98056b6fd5086a5b5a16ace0cda8357d8fb7bdc3e758273c3ec91e416f926c3e54dbeb54136c6853ce23bc7e  0010-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
6671165e7dc3546b42edc7cf3304ddb755c707a7c7976bc544f7da6ad974c09bfa5e7cc2e83a98ece8e919808ae73199b19930d390c8ac34527f58f28ba836b6  0011-nslookup-sanitize-all-printed-strings-with-printable.patch
f2a44cf6903d6ecac3bd226b2abb2fbd692f883dc0d296df0a8d2c34350673c51f18d68bc9819d7badbab0541839f4e91361d85f014159af8e0fab82e324f84e  0012-ash-exec-busybox.static.patch
9788eed96fc490ea393e760657b8d8d7a09696e24515e30099dffe8c3d534a6018ca2cf17e689e8740438b2fdcc0c3ed67dc841e6c03f39322d12b60edc66a97  0013-app-location-for-cpio-vi-and-lspci.patch
52094fb50723d924feeb31b86d8b71143505b8d66f6b881c43859c1a346d5a52ef8fb5aa7806f1f1892cbd083b03fc294d1181761eef01ffb564717e121a2300  0014-udhcpc-set-default-discover-retries-to-5.patch
dae2f3a137edcbf31e0afb8565f372a549ba67997c391e755a9f29b4c986219a9516b1e1be589fddf81f136d6c7700c91fb83c46aed74c018a58ab06ea2d0567  0015-ping-make-ping-work-without-root-privileges.patch
6ede756c01ce7fdcd02a38188a86f4cacff4066eb5032bbb716edf8d4eb3e437de767f04cd0ed8a3e915ee10270465be59248f72d2e7a15abc3d865feba0a361  0016-fbsplash-support-console-switching.patch
85209a0fb5368dfbb831095d381ec135313c26030f3eb4c5df8a40051fa6932e6b49a91965ea745b670efbc7a8e32707a08bfde36c923912f5e67fe2d6bbb1a5  0017-fbsplash-support-image-and-bar-alignment-and-positio.patch
67a21b4754534b5faceee3da1c24e037e8e259924fd415cdfd5aabfff6c2bea3d15d58cd32c29359bf5b311e666ad1ff01a1ec043be1051ba359c52921449c18  0018-depmod-support-generating-kmod-binary-index-files.patch
b74cb8d9c635432f7a2205a91debf023cc4e5fcf5cf8b25e690711afaf24956f772aa70782f266a9b997e16069b828f993a015e93248842808a721e00a8530b7  0019-Add-flag-for-not-following-symlinks-when-recursing.patch
95b82ac5cd0367c15008dd3568ffb68f6489065618fe3f5d04c30650a5492d1314374a3d83b5aeea078b003b43c1b856a0a1b52434fdfe0e3eb299fd44d16a59  0020-udhcpc-Don-t-background-if-n-is-given.patch
65a62f6013d2ee55e0ba32836adf48fd572fe7f931b50bb56bf778673a5ea6883d85c08bda0df4b87f5181433a3663bd15d805f75cdef3974e355a05f5b13c70  0021-tests-fix-tarball-creation.patch
99f3469a057040b38f4a66053109fb874bac7b4ec0481c515fe675c24ed8f99a89b756fce977ad122edff43aedf722ebdd7e7e475adb5edbae207fdcc4429b5d  0022-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
d82c99af216d8f4a90cf7dae78ca73ad348fa1c70cd50a65376a768a6426e87071e1036cc9c3ab3606986cc99886b4a4f53685d4f26f3aec20c0cb07df5a936a  0023-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
a67640383d0b02c1a1eb177543270776922c09bdf8ac442d5dfa16ba63b99cf31f105b8db4f5ca21413be1057e55cc4a42314143bea505027d3a36e7e7e786a9  0024-umount-Implement-O-option-to-unmount-by-mount-option.patch
e6aaa90843082ee01d4a0e14756399bbed386e6ff30ed853bb1420bc351a8a15b773be60d5f86f9a3ddbe5106e08e2b185b44e64a6ef210eb26b270dc32b211f  0025-find-fix-xdev-depth-and-delete.patch
e2c6367162b886654d64a1988e383c05e2792183265c3542d68e535daa5a9509c3e6a42b9aad0367a872fd494089a7b3911e8a438c47db16fbf21b656b030382  0026-awk.c-fix-CVE-2023-42366-bug-15874.patch
82b203472b8cdb790c15dbdb5374de45dbe2fcf926c16910b890540278d4ff6bb843fed3a8840a0eb6d340e0eac27ced0c2a4103d37848b51c61e94a3f0436da  0027-awk-Mark-test-for-handling-of-start-of-word-pattern-.patch
711c92902f4d99863c0433e0670999a456c588cf8a1a4729678244d61607aa82269c1944942617650902ce242fbfe3f9d68593ae0a21e4c17bfc04470f4253ba  0028-od-Skip-od-B-on-big-endian.patch
d9625580bdfe7036e0a3e01c33ddffcc8c70737dfa031c9f97a5a45635910dbd5cf3ebb8d28256a10ee7a13efa1e396a93404099db7a5143adf924a953d4cbe7  0029-ash-reject-unknown-long-options.patch
3b9542d3ec24d9d3fd12b69f60ca1014b49240b92d8517e4467f62b0e266102a73cdac784766a5548a909e08a497c577b1e880604d1859eee18ac455d8bc56b2  0030-hexdump-Skip-a-single-test-on-big-endian-systems.patch
4c2b7d7c623b318087f20b0bef9140cfa3f83111bfc922bba50ddd16edb8844c848c8b93c5d31303b7f253673fbff8ccf3d4ab4b9dad52fde3e04744b0782170  0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch
ac56a170a31f4329d00155a2a7d3950c4fe365e69e2e6b773a28fe3faa214a1330f0dd910bf0712453f033abc9e8465f9cec80f4e3e820a5d6ffafbf36e503e7  0032-lineedit-fix-some-tab-completions-written-to-stdout.patch
ac026f8b289d1431c46d51a8c512eb0184aa81de1c41971a87c99bcdc5c63c2d9abed412cad20d3032b480d87a52ee2602411149eb5f271fa9d051165a7b8188  0001-hexdump-fix-regression-with-n4-e-u.patch
aa93095e20de88730f526c6f463cef711b290b9582cdbd8c1ba2bd290019150cbeaa7007c2e15f0362d5b9315dd63f60511878f0ea05e893f4fdfb4a54af3fb1  acpid.logrotate
94007c258297beb756b7668af94f4818c598456ff337919d8f1260ebf1616c7b0016c2cf04bf8d2428f2c307d30816b523308509770d1aae67fdd87c29a360fa  busyboxconfig
9b399cf4bb9dc438c238d7294aef8a7452d9a2b74ff4c09a1349e74e457523329b32042ce86e7dedb99906011022dfd631074a836c897082cbe88c9ae19fe1d4  busyboxconfig-extras
0becc2186d6c32fb0c401cf7bc0e46268b38ce8892db33be1daf40273024c1c02d518283f44086a313a2ccef34230a1d945ec148cc173f26e6aa9d88a7426e54  bbsuid.c
afc27da5f95bec3e3ccb5b1fcb5bd80a8317d8753e6c70cc0750d0875313e44bf2e487472c8499d7bbe5afba3e583c75548ccdcff4dcadc94bb791f53fb77ba3  dad.if-up
1c7c78afb274d1316725b22585452efd7de9a80ad326f099f25e34d0877c5d81ced579e2dc795314221e316f58071374f61ee22c6ffd34072266525f65d3614c  ssl_client.c
e56f9d74f7d471893ff9c3fde319b989e1854c9b12f06c1b6739694b07165ae256b5c555bc75c92986265df7f0a276001aba73853855c7a0fb3404a091a92c86  default.script
5f9ff70f99a970e88460c0de81a6637d8a82252fba6715e259833f16ed8cbfc3440972b1fa454eb77dbbcd1e244774c96b4eef96f71a2b67a9039a0dd5e6fc1e  udhcpc.conf
38d6ce0dfff65ce7ec644f5d7aca70de943f4d5fb8820c772f5d945926b678de280f19831d3f3d0dc0dcda16812841748b57eaa745b784a5e216a59657afbd71  securetty
95187d7f4f91a1be353d9c5922238da6ff1f688a1a7366678c10163c683ba7fd82b3fecc71e86e04197aa322322e0152a3cf86b4ceca19dd04e9a9c763fede2f  acpid-poweroff.sh
fcb532233fd7ba8cad302d037b88cff00ee8b96b37c90b34fc823479208cf7cdda48818c972ce2c4703b7283fd58e99ba8a724818f884f3b09eaa7e2d6ffad21  acpid.initd
34c6f3197064bb91619b899b28a201bd4d920b18bded3845440b2cb36dc6f16cabf447c96878349b16e46c30184cbe48bac00a01c5f7cf1be038c0b7136064c5  crond.confd
0e8266b1bf1d533de7531f32b27c815db00378df6e9ee98232ba3b9cb4f3e1770db65290d338ac0745aca52dd99c3c128dde3fa81ed110dd02c4a298a2f62b1b  crond.initd
f9bf43b72142bbb4c0665c1268a3d91586ef8a057dfe64c53b6923815d2db1f669b8080a38311ad89cda0b783a8628700fc5414d834a21d8e48515760bb910f7  klogd.confd
50b975ac94722e8584249a73b7f36134cb954ad19716b7f3437a6e2cde2a81465ef153b04a0b8e734fc7971320df71cd8c75e669bb4da86233c1991bc516260f  klogd.initd
b0ba67585f39d83320ed6de183d7463a0e163807b9f3dc6f0baa212236056f22aeb2c5399dfdcd54929eb5ae06a15714c2fed133b5888869ed9d9cf589cef843  ntpd.confd
9e0aedd8f0d546532ad99fb5d3043e222d3f85bfebe2a01609a47b1eef5339750e81753c12eeb79852cefc88e9ff28c54b8858be44702c871c32ca82390d71d2  ntpd.initd
11b2a71c38c87d95cd19307481b5f05d9aa980f1ee8348a90b14d698a78b5d0109974fef782ae6538177bcf8bb9fc9cd6f8e4a368ff6b6266276745f1394c2e0  rdate.confd
a95d03564712803fc58c48534f2fbbf23dd8418ffd3a6a06f840e969627892eea518b4fe17f059850665fc056cedf972c26aee52c309805987fb5c59a710bd30  rdate.initd
bf8173ee33a5d2b61cbdbc1b070e599a17a21e5433a0d8aa9beef71e4ac831304076af8e7e58dc594cdee61562329793afdc57af91e5496bf5fffb9b734a3d9c  syslog.confd
a13a6add6f7fb10a3a2563391b6f8b68161249147e9f50e6d857c5689123f6d974368ce4f13b8d93312fa38d05f604d67c4c976d8a7eef301af50a3a6ad50c23  syslog.initd
acbba3385fb2c416362eb9176f24146b617a2e394ee0e00b9eff89350f82468a5ab8396f4f52b0aaf03d341ac6150c73182e808fa3f29a2dc71c69271cdfb811  loadkmap.confd
1b61a0f1eb40f2ea14bf3ed3441996f343d70fd45858d443f21244f133dcdf1c64433c3deaef769eee4e3e698b405f25e1bbc185a25c351a88ce7d120d61cf00  loadkmap.initd
359af0a4a1841dd6557eaf3e71d39f0d7a2687bad6a8fc6ef436eccf72a40f85c6400a3b7880c7f64d8e460b6af8a0ff3dd5ffc3a4b1aa8eb0d8f7eaf99ee3e4  watchdog.confd
53d19009e571dcd3920890c88da815709bfadfffc6946e2dec347d80291622475381a61e9b5cccc15f69f15c0778c192c0112a9f70f379205490b1924ad44a20  watchdog.initd
6ce0b2a8fe69cc7ea657c5b9076aba51c8f0beeaafa4a887d8673bcc9f9cf8ee40f4b07d2d901ec7a1a1e4f29c150c496559559e803595d0bd487dec56b530a2  mdev.initd
8af4a5652c418274c3f9ea2698d5026ebea78cd6cbd78e7779125d039aa5807fe92a44e70062b53fe6b830c3fe479f0e6d6ee4a61f37cf4814e895cf1b6ea215  dnsd.initd
b8ffad8394dee7c2613a047cc34d6b7d650b576c6c9c8427c1ecf9148ca57e4cb3ea9fbc13525f104dde8e30bc78fe3ad4747d534b55750f5c76e8f98368cd33  httpd.initd
7b286eaba66a4c86366eec38cd94d8547a15bff72923456edf8c683d4e02bf55d85628adbdb7c1c44f3b16b545ea0ca238afa14a73fc1ade0c33ed7e9fcf2b49  inetd.initd
4a8d1e924284fca730a262fedc3cb76b4f4689a6c650b0c5544b65eeab6cfd9e8eb91f448d9ebbba6efbb056695428c1b26e5eaeb7233bae090676d1789954cc  udhcpd.initd
"
